package com.ktgj.customer.mapper;

import java.util.List;
import com.ktgj.customer.domain.TravelGroupNumber;
import com.ktgj.customer.domain.TravelGroupNumberDto;
import com.ktgj.customer.domain.vo.GroupNumVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * 旅游团号Mapper接口
 * 
 * @author ruoyi
 * @date 2021-10-26
 */
@Repository
public interface TravelGroupNumberMapper 
{
    /**
     * 查询旅游团号
     * 
     * @param numberId 旅游团号ID
     * @return 旅游团号
     */
    public TravelGroupNumberDto selectTravelGroupNumberById(Long numberId);

    /**
     * 查询旅游团号列表
     * 
     * @param travelGroupNumberDto 旅游团号
     * @return 旅游团号集合
     */
    public List<TravelGroupNumberDto> selectTravelGroupNumberList(TravelGroupNumberDto travelGroupNumberDto);

    /**
     * 新增旅游团号
     * 
     * @param travelGroupNumberDto 旅游团号
     * @return 结果
     */
    public int insertTravelGroupNumber(TravelGroupNumberDto travelGroupNumberDto);

    /**
     * 修改旅游团号
     * 
     * @param travelGroupNumberDto 旅游团号
     * @return 结果
     */
    public int updateTravelGroupNumber(TravelGroupNumberDto travelGroupNumberDto);

    /**
     * 删除旅游团号
     * 
     * @param numberId 旅游团号ID
     * @return 结果
     */
    public int deleteTravelGroupNumberById(Long numberId);

    /**
     * 批量删除旅游团号
     * 
     * @param numberIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteTravelGroupNumberByIds(Long[] numberIds);

    Long selectByGroupId(Long groupId);

    /**
     * 查询指定旅游产品的旅游团号
     * */
    public List<TravelGroupNumberDto> selectTravelGroupNumberDto(Long groupId);

    /**
     * 查询旅游团号
     * */
    public List<TravelGroupNumberDto> selectTravelGroupNumberDtoList();

    /**
     * 团号列表
     * */
    public List<TravelGroupNumber> groupNumList(GroupNumVo groupNumVo);

    /**
     * 修改团号状态
     * */
    public int updateStart(Long groupId);

    /**
     * 团号列表
     * */
    public int insertGroupNum(TravelGroupNumber travelGroupNumber);

    /**
     * 查询待修改的团号
     * */
    public TravelGroupNumber selGroupNum(Long id);

    /**
     * 修改团号
     * */
    public int updateNum(TravelGroupNumber travelGroupNumber);

    /**
     * 团号上下架操作
     * */
    public int operate(@Param("type") Long type, @Param("id") Long id);
}
